#!/usr/bin/python3
# -*- coding:utf-8 -*-
""""
@Author: 李吉凯
@Email: lijk34925@hundsun.com
@Time: 2021/6/10 10:27
@File: setup.py
"""

from setuptools import setup, find_packages
from BladeFerm.utils.basic_opration import get_curtime

# 自动发现所有包 应用脚本： 'CommonScripts', 'CommonScripts.*', 'AmlScripts', 'AmlScripts.*', 'HGScripts', 'HGScripts.*'
packages = find_packages(include=['BladeFerm', 'BladeFerm.*',
                                  'DataTest', 'DataTest.*',
                                  'qturboframe', 'qturboframe.*'])

# 导入静态文件
file_data = [
    "./BladeFerm/test_frame_instruction.md",
    "./BladeFerm/qturbo.ini",
    "./BladeFerm/databases/driver/*.jar",
    "./DataTest/databases/jar/*.jar"
]

# 第三方依赖
requires = ['pandas', 'pytest', 'PyYAML', 'xlutils', 'openpyxl', 'xlrd', 'xlwt', 'cx-Oracle', 'colorlog',
            'jsonpath', 'fake', 'pymysql', 'fastapi', 'uvicorn==0.16.0',
            'jaydebeapi', 'JPype1', 'psycopg2', 'pymssql', 'deepdiff',
            'loguru', 'sqlparse', 'faker'                      # 这一行都是其他包需要的，例如DataTest
            ]
cur_time = get_curtime('%Y%m%d%H%M%S')

# 自动读取version信息
about = {
    '__title__': 'BladeTestFrame',
    '__version__': cur_time,
    '__description__': '数据风险测试业务部自动化测试框架',
    '__author__': '李吉凯',
    '__author_email__': 'lijk34925@hundsun.com',
    '__url__': ''
}

setup(
    name=about["__title__"],  # 包名称
    version=about["__version__"],  # 包版本
    description=about["__description__"],  # 包详细描述
    long_description='readme',   # 长描述，通常是readme，打包到PiPy需要
    author=about["__author__"],  # 作者名称
    author_email=about["__author_email__"],  # 作者邮箱
    url=about["__url__"],   # 项目官网
    packages=packages,    # 项目需要的包
    # data_files=file_data,   # 打包时需要打包的数据文件，如图片，配置文件等
    include_package_data=True,  # 是否需要导入静态数据文件
    python_requires=">=3.5, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3*",  # Python版本依赖
    install_requires=requires,  # 第三方库依赖
    zip_safe=False,  # 此项需要，否则卸载时报windows error
    classifiers=[    # 程序的所属分类列表
        'Development Status :: 5 - Production/Stable',
        'Intended Audience :: Developers',
        'Natural Language :: English',
        'Programming Language :: Python :: 3.7',
        'Programming Language :: Python :: Implementation :: CPython',
        'Programming Language :: Python :: Implementation :: PyPy'
    ],
)